package org.llc.flink.study.example

object List07 {
  def main(args: Array[String]): Unit = {
    /**
      * 使用化简的方式来计算list集合的和
      */
    val list = List(1, 20, 30, 4, 5,10)
    // 接收一个函数时，也可以直接传入一个匿名函数
    val res = list.reduceLeft(sum)

    //执行的流程分析
    //步骤 1 (1 + 20)
    //步骤 2 (1 + 20) + 30
    //步骤 3 ((1 + 20) + 30) + 4
    //步骤 4 (((1 + 20) + 30) + 4) + 5 = 60
    println("res=" + res) // 60
  }

  def sum(n1: Int, n2: Int): Int = {
    /**
      * 1 + 20 = 21
      * 21 + 30 = 51
      * 51 + 4 = 55
      * 55 + 5 = 60
      */
    println(s"$n1 + $n2 = ${n1 + n2}")
    n1 + n2
  }

}
